#ifndef ALMACENAMIENTO_H_
#define ALMACENAMIENTO_H_
/*
 * Funcion: Clase abstracta para abstraer los distintos tipos de Almacenamiento.
 */
#include "../Constantes.h"

class Bytes;

class Almacenamiento {
public:
	/*
	 * Pre: -
	 * Pos: Crea una nueva instancia.
	 */
	Almacenamiento();

	/*
	 * Pre: -
	 * Pos: Libera los recursos instanciados.
	 */
	virtual ~Almacenamiento();

	/*
	 * Pre: -
	 * Pos: almacena en el Almacenamiento los Bytes pasados por parametro en el offset indicado.
	 */
	virtual void escribir(const Bytes&, offset) = 0;

	/*
	 * Pre: -
	 * Pos: devuelve la tira de bytes leidos desde el offset, si los parametros son incorrectos, devuelve un Bytes de tamanio cero.
	 */
	virtual Bytes leer(offset, cantBytes) = 0;
};

#endif /* ALMACENAMIENTO_H_ */
